package main

import "fmt"

// 程序架构
func main() {
	println("#### naming ####")
	naming()
	println("#### shengming ####")
	shengming()
}

// 命名
func naming() {
	_a := 1
	a := ""
	println(_a, a)
}

/* 一、声明:有四种类型的声明语句：var、const、type和func */
// 声明1:全局变量
var goalA = 1

// 声明2:全局常量
const goalB = 2

// 声明3:类型
type tyepDemo struct {
	id   int    `json:"i"`
	name string `json:"n"`
}

// 声明4:func
func shengming() {
	// 局部变量
	var a = 1
	// 局部常量
	const b = 2
	println("局部：", a, ",", b)
	println("全局", goalA, ",", goalB)

	s1, s2, s3 := 1, 2, 3
	println("多变量定义", s1, s2, s3)

	ff1 := ff1(123)
	fmt.Println(ff1) // {123 张三}
}

// 声明4:func, 参数：先名称后类型，返回类型定义在方法参数后面
func ff1(id int) tyepDemo {
	d := tyepDemo{}
	d.id = id
	d.name = "张三"
	return d
}
